Compiler Assisted Speculation for Multithreaded Programming
نویسندگان
چکیده
Multithreaded programming, which well fits the structure of modern shared memory systems, is becoming one of the most popular parallel programming models. Two important supporting components of multithreaded programming, concurrent data structures and transactional memory, can benefit from speculation. However, traditional speculation mechanisms, which do not exploit high level knowledge about the program, are inefficient in concurrent data structures and transactional memory systems. In this proposal, we bridge the gap between the high-level program knowledge and the speculation in multithreaded programming with the compiler’s assistance. We propose a language extension to incorporate fast speculation into concurrent data structure design, and show how the language extension helps the speculation in newly emerged HTM processors. Besides, in order to improve the speculation in transaction memory systems under the circumstance with data high contention, two compiler optimization techniques are also proposed for STM and HTM, respectively.
منابع مشابه
Control Speculation in Multithreaded Processors through Dynamic Loop Detection
This paper presents a mechanism to dynamically detect the loops that are executed in a program. This technique detects the beginning and the termination of the iterations and executions of the loops without compiler/user intervention. We propose to apply this dynamic loop detection to the speculation of multiple threads of control dynamically obtained from a sequential program. Based on the hig...
متن کاملJIT-Compiler-Assisted Distributed Java Virtual Machine
There is now a strong interest in high-performance execution of multithreaded Java programs in a cluster. Previous efforts to provide for such executions have either used static compilation tools that can transform multithreaded Java programs into parallel versions, or interpreter-based cluster-aware JVMs that offer the needed support. They failed however to be fully compliant with the Java lan...
متن کاملUtilising parallel resources by speculation
This paper introduces Simultaneous Speculation Scheduling, a new compiler technique that enables speculative execution of alternative program paths. In our approach concurrently executed threads are generated that represent alternative program paths. Each thread is the result of a speculation on the outcome of one or more branches. All threads are simultaneously executed although only one of th...
متن کاملThe Superthreaded Processor Architecture
The common single-threaded execution model limits processors to exploiting only the relatively small amount of instruction-level parallelism available in application programs. The superthreaded processor, on the other hand, is a concurrent multithreaded architecture (CMA) that can exploit the multiple granularities of parallelism available in general-purpose application programs. Unlike other C...
متن کاملDesigning the Agassiz Compiler for Concurrent Multithreaded Architectures
In this paper, we present the overall design of the Agassiz compiler [1]. The Agassiz compiler is an integrated compiler targeting the concurrent multithreaded architectures [12][13]. These architectures can exploit both loop-level and instruction-level parallelism for general-purpose applications (such as those in SPEC benchmarks). They also support various kinds of control and data speculatio...
متن کامل